PXE的部署过程

您所在的位置:网站首页 uefi pxe启动是什么意思 PXE的部署过程

PXE的部署过程

2024-07-10 09:43| 来源: 网络整理| 查看: 265

简介 什么是PXE?

PXE( Preboot Execution Environment的缩写,即预启动执行环境)是由Intel设计的一种网络协议,可使计算机通过网络启动安装系统,同时也是一种使用网络接口启动计算机的机制,其不依赖本地数据存储设备或本地已安装的系统;协议分为client端和server端,PXE client在网卡的boot ROM中启动,当计算机开机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择需要安装的系统后,PXE client将放置在远端的操作系统通过网络下载到本地运行;

常见安装方式: 光盘安装 使用server内置光驱或外置USB光驱,将系统镜像刻录,从光盘安装; U盘安装 利用工具将镜像系统写入U盘,从U盘启动; 镜像挂载安装 利用BMC Web GUI远程挂载镜像安装; 网络引导安装(PXE) 客户端通过网络启动,读取远端服务器上的镜像以安装; PXE server的四种模式

PXE有四种启动模式,分别为 IPV4 legacy,IPV4 UEFI,IPV6 legacy,IPV6 UEFI,这里主要介绍IPV4 legacy启动模式需要的文件。 1.pxelinux.0: 计算机自展引导程序(bootstrap),负责系统引导和启动,作用类似于BIOS,会调用PXE相关配置文件 2.pxelinux.cfg: 文件夹,存放PXE配置文件 vmlinuz: linux的内核文件,可以被引导程序加载,从而启动Linux系统 3.initrd.img: boot loader initialized RAM disk的缩写,作为根文件系统加载各种模块、驱动、服务等,网卡驱动就包含在该文件中.

原理 客户端(Client)的BIOS支持网卡启动,且网卡具有PXE ROM芯片; 服务端(PXE Server)至少有 dhcp,tftp,nfs服务且为开启状态; BIOS通过PXE Client调入内存执行,PXE Sever向本地局域网中dhcp.server发出分配IP请求; 在dhcp.server收到请求后,便向PXE Server返回IP及bootstrap文件(自展引导程序)的位置;客户端向tftp.server请求bootstrap文件,tftp.server收到请求向客户端发送bootstrap文件 -->pxelinux.0; 客户端收到pxelinux.0文件后执行文件,并根据内容向tftp.server请求pxelinux.0的配置文件-->tftpboot/pxelinux.cfg/default; 客户机读取default文件,等待用户选择安装系统后,客户端向tftp.server发出提供内核文件vmlinuz和根文件系统initrd.img请求; tftp.server收到客户端请求,提供vmlinuz和initrd.img; 客户端收到文件,启动内核映像文件,内核文件根据bootstrap的配置文件pxelinux.0向PXE sever请求提供自动安装脚本和源文件,PXE Server通过ftp/http/nfs中的一个向客户端传送相关脚本和源文件,客户端获得后进行自动安装。 PXE server架设过程

关闭Firewalls & SELinux service iptables stop #临时有效,重启后防火墙自动打开 chkconfig iptables off #永久有效,重启后防火墙不自动打开 setenforce 0 #临时有效,重启后失效 vim /etc/selinux/config#永久有效,重启后也有效 SELINUX=disabled

检查是否安装了dhcp,tftp,nfs服务 rpm -qa | grep -i dhcp rpm -qa | grep -i tftp rpm -qa | grep -i nfs

配置yum源(如已安装了dhcp,tftp,nfs服务可忽略该步骤) vim /etc/yum.repos.d/server.repo [development] name=development baseurl=file:///mnt/ gpgcheck=0 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

安装dhcp,ftp,nfs服务(如已安装了dhcp,tftp,nfs服务可忽略该步骤) yum install -y dhcp yum install -y tftp yum install -y nfs

配置任意网口信息,并设定IP地址 vim /etc/sysconfig/network-scripts/ifcfg-enp3s0f0

NAME="enp3s0f0" DEVICE="enp3s0f0" ONBOOT=yes #开机自启 NETBOOT=yes UUID="169f6948-307c-42a7-bb35-a773c86fb5d6" BOOTPROTO=none #IP地址类型 IPADDR=192.168.1.250 #IP地址 TYPE=Ethernet PREFIX=24 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_FAILURE_FATAL=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes

开启网络服务:service network start/restart or systemctl start network.service

配置dhcp.conf并启动服务 vim /etc/dhcp/dhcpd.conf

# dhcpd.conf ddns-update-style interim; ignore client-updates; allow booting; allow bootp; class "pxeclients" { match if substring(option vendor-class-identifier,0,9)="PXEClient"; next-server 192.168.1.250; filename "pxelinux.0"; } subnet 192.168.1.0 netmask 255.255.255.0 { option broadcast-address 192.168.1.255; option routers 192.168.1.250; option subnet-mask 255.255.255.0; range 192.168.1.205 192.168.1.249; default-lease-time 8640000; }

启动dhcp服务:service dhcp start or chkconfig dhcpd on

配置tftp并启动服务 vim /etc/xinetd.d/tftp

# default: off # description: The tftp server serves files using the trivial file transfer protocol. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }

启用tftp服务:service tftp startor /etc/init.d/xinetd start or chkconfig tftp on 开机自启

配置nfs并启动服务 vim /etc/exports

/tftpboot *(rw,no_root_squash)

启用nfs服务:service nfs start

准备系统镜像文件 mount -o loop rhel7.4.iso /mnt #将镜像挂载在'/mnt'下 mkdir /tftpboot/rhel7.4 #创建文件夹 cp -rf /mnt/* /tftpboot/rhel7.4 拷贝文件至新建文件夹下 chmod -R +x /tftpboot/rhel7.4 #给文件赋予执行权限 cp -rf /usr/share/syslinux/pxelinux.0 /tftpboot/ cp -rf boot.msg vesamenu.c32 splash.png /tftpboot/ mkdir /tftpboot/pxelinux.cfg cp -rf /tftpboot/rhel7.4/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/ mv /tftpboot/pxelinux.cfg/isolinux.cfg /tftpboot/pxelinux.cfg/default #更改文件名字

配置pxelinux.cfg文件 vim default

default vesamenu.c32 prompt 1 timeout 600 display boot.msg menu background 1.jpg menu title Welcome! menu color border 0 #ffffffff #00000000 menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color scrollbar 0 #ffffffff #00000000 label install menu label ^1)Install rhel7.4 in /dev/sda menu default kernel rhel7.4/vmlinuz biosdevname=0 append initrd=rhel7.4/initrd.img ks=nfs:192.168.1.250:/tftpboot/rhel7.4/ks/ks.cfg

配置无人值守kickstart文件

#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us' # Root password rootpw --iscrypted $1$BrX4T9WN$OXLjtLaSe7VNnmjlsUyXE0 # System language lang zh_CN # Firewall configuration firewall --disabled # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install install graphical # SELinux configuration selinux --disabled # Use NFS installation media nfs --server=192.168.1.250 --dir=/tftpboot/rhel7.4 # Network information network --bootproto=dhcp --device=enp3s0f0 # Reboot after installation reboot # System timezone timezone Asia/Shanghai # Partition clearing information clearpart --all --drives=sda # System bootloader configuration bootloader --append="crashkernel=768M vconsole.font=latarcyrheb-sun16 vconsole.keymap=us biosdevname=0 ipv6. disable=1 console=tty0 console=ttyS0,115200 scsi_mod.scan=sync intel_idle.max_cstate=0 pci=pcie_bus_perf nouveau.modeset=0 rd.driver.blacklist=nouveau video=vesa:off rd.driver.pre=ahci" --location=mbr --boot-drive =sda # autopart --type=lvm part /boot --asprimary --fstype="ext4" --ondisk=sda --size=1024 part swap --asprimary --fstype="swap" --ondisk=sda --size=51200 part / --asprimary --fstype="ext4" --ondisk=sda --size=153600 %packages @additional-devel @anaconda-tools @backup-client @backup-server @base @compat-libraries @console-internet @core @debugging @desktop-debugging @development @dial-up @directory-client @directory-server @dns-server @emacs @file-server @fonts @ftp-server @gnome-apps @gnome-desktop @graphical-admin-tools @graphics @guest-agents @guest-desktop-agents @hardware-monitoring @identity-management-server @infiniband @input-methods @internet-browser @java-platform @kde-desktop @large-systems @legacy-unix @legacy-x @load-balancer @mail-server @mainframe-access @mariadb @mariadb-client @multimedia @network-file-system-client @network-server @network-tools @networkmanager-submodules @perl-runtime @perl-web @php @platform-devel @platform-kvm @platform-microsoft @platform-vmware @postgresql @postgresql-client @print-client @print-server @python-web @remote-desktop-clients @remote-system-management @ruby-runtime @scientific @security-tools @smart-card @system-admin-tools @system-management @technical-writing @virtualization-client @virtualization-hypervisor @virtualization-platform @virtualization-tools @web-server @web-servlet @x11 %end

以上,便完成了整个PXE的部署流程。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3